/*
 * 文件名：CouponInfoDao.java
 * 版权：Copyright by www.huawei.com
 * 描述：
 * 修改人：lilan
 * 修改时间：2016年4月21日
 * 跟踪单号：
 * 修改单号：
 * 修改内容：
 */

package com.zcsy.manage.persistence.mall;

import java.util.List;
import java.util.Map;

import com.zcsy.manage.model.mall.CouponInfo;

/**
 * 
 * @Title: CouponInfoDao.java
 * @Package： com.zcsy.manage.persistence.mall 
 * @Description: 优惠券信息管理Dao层
 *
 * @author lilan 1063972142@qq.com
 * @Copyright: 2015 武汉恒数利通信息技术有限公司 All rights reserved.
 * @date 2016年4月21日
 * @version 1.0
 * @see JDK1.7.0_75
 * @since
 */
public interface CouponInfoDao {
	
	/**
	 * 
	 * @Description 插入优惠券信息<br>
	 * 
	 * @param couponInfo 优惠券信息对象
	 * @return 
	 * @author lilan 1063972142@qq.com
	 * @date 2016年4月21日
	 * @see
	 */
	int insert(CouponInfo couponInfo);
	
	/**
	 * 
	 * @Description 更新优惠券信息<br>
	 * 
	 * @param couponInfo 优惠券信息对象
	 * @return 
	 * @author lilan 1063972142@qq.com
	 * @date 2016年4月21日
	 * @see
	 */
	int update(CouponInfo couponInfo);
	
	/**
	 * 
	 * @Description 根据主键id删除优惠券信息<br>
	 * 
	 * @param id
	 * @return 
	 * @author lilan 1063972142@qq.com
	 * @date 2016年4月21日
	 * @see
	 */
	int deleteByPrimaryKey(String id);
	
	/**
	 * 
	 * @Description 根据主键id获取优惠券信息<br>
	 * 
	 * @param id
	 * @return 
	 * @author lilan 1063972142@qq.com
	 * @date 2016年4月21日
	 * @see
	 */
	CouponInfo selectByPrimaryKey(String id);
	
	/**
	 * 
	 * @Description 根据关键字获取优惠券申请信息列表<br>
	 * 
	 * @param couponInfo
	 * @return 
	 * @author lilan 1063972142@qq.com
	 * @date 2016年4月21日
	 * @see
	 */
	List<CouponInfo> selectByApplyKeyword(CouponInfo couponInfo);
	
	/**
	 * 
	 * @Description 根据关键字获取优惠券信息列表<br>
	 * 
	 * @param couponInfo
	 * @return 
	 * @author lilan 1063972142@qq.com
	 * @date 2016年4月25日
	 * @see
	 */
	List<CouponInfo> selectByKeyword(CouponInfo couponInfo);
	
	/**
	 * 
	 * @Description 获取所有优惠券信息<br>
	 * 
	 * @return 
	 * @author lilan 1063972142@qq.com
	 * @date 2016年4月26日
	 * @see
	 */
	List<CouponInfo> getAllCouponInfo();
	
	/**
	 * 
	 * @Description 根据时间关键字获取优惠券信息列表<br>
	 * 
	 * @param couponInfo
	 * @return 
	 * @author lilan 1063972142@qq.com
	 * @date 2016年5月24日
	 * @see
	 */
	List<CouponInfo> selectByTime(CouponInfo couponInfo);
	
	/**
	 * 
	 * @Description 根据时间关键字获取优惠券信息列表<br>
	 * 
	 * @param couponInfo
	 * @return 
	 * @author lilan 1063972142@qq.com
	 * @date 2016年6月1日
	 * @see
	 */
	List<CouponInfo> selectCouponinfo(CouponInfo couponInfo);

	/**
     * 
     * @Description 根据时间关键字获取优惠券信息列表<br>
     * 
     * @param userAccount
     * @return 
     * @author yangfan 373188993@qq.com
     * @date 2016年6月30日
     * @see
     */ 
    List<CouponInfo> selectByUserAccountAndState(CouponInfo couponInfo);
    
    /**
     * 
     * @Description 根据店铺Id获取店铺优惠券及平台优惠券<br>
     * 
     * @param shopId
     * @return 
     * @author yangfan 373188993@qq.com
     * @date 2016年7月10日
     * @see
     */
    List<CouponInfo> getCouponInfoByShopId(String shopId);
    /**
     * @Method: getAllCouponInfoByShopId
     * @Description 根据店铺Id获取店铺优惠券
     * @param shopId
     * @return 
     * @author liuziyu liuziyuwri@foxmail.com
     * @date 2016年7月20日
     * @see 
     */
    List<CouponInfo> getAllCouponInfoByShopId(Map<String, Object> map);

    /**
     * @Description 显示所有当前店铺正常状态的满减券
     * @param shopId 店铺id
     * @return 优惠券列表
     * @author liuying 1075817474@qq.com
     * @date 2016年8月17日
     * @see 
     */
    List<CouponInfo> getAllCouponInfoBySId(String shopId);
    
    /**
     * @Description 根据小区id获取满减的平台优惠券
     * @param cellId 小区id
     * @return 优惠券列表
     * @author liuying 1075817474@qq.com
     * @date 2016年8月5日
     * @see 
     */
    List<CouponInfo> getFlatCouponInfo(String cellId);

    /**
     * 
     * @Description 获取平台优惠券<br>
     * 
     * @return 
     * @author yangfan 373188993@qq.com
     * @date 2016年8月8日
     * @see
     */
    List<CouponInfo> getPlatformCouponInfo();
    
    /**
     * 根据优惠卷详情id获取优惠券信息
     * @Method: getCoupontInfoByDetailId
     * @param detailId 优惠卷详情id
     * @author hubing
     * @date 2016年8月29日
     */
    CouponInfo getCoupontInfoByDetailId(String detailId);
    
    /**
     * @Description:根据店铺id查询在领取时间内的正常状态的数量大于零的优惠劵
     * @param shopId 店铺id
     * @author huangls 1449700087@qq.com
     * @date 2016年9月19日
     */
    List<CouponInfo> getCouponInfo(String shopId);
    
    /**
     * @Description:查询在领取时间内的正常状态的数量大于零的平台优惠劵
     * @author huangls 1449700087@qq.com
     * @date 2016年9月20日
     */
    List<CouponInfo> getflatCouponInfo();
}
